This repository ships four GitHub Actions workflows:
ci.ymlruns the monorepo check and build once on Linux, packs the public npm artifacts, then smoke-installs them on Linux, macOS, and Windows.prepare-release.ymlopens audited release-preparation pull requests.release-packages.ymlpublishes the npm packages when a GitHub Release is published or when the workflow is run manually.deploy-website.ymldeploys the Astro/Starlight website to Cloudflare.
The repository also ships package-manager definitions for downstream distribution:
Formula/ingraft.rbinstalls the published npm tarball through Homebrew.flake.nixandnix/package.nixexposegithub:gunta/ingraft#ingraftfor Nix users.packages/website/public/install.shinstalls the published npm package through Bun, npm, pnpm, or Yarn for shell users.
The package release workflow uses npm Trusted Publishing through GitHub OIDC. Configure each npm package with this trusted publisher:
- Repository: this GitHub repository
- Workflow:
.github/workflows/release-packages.yml - Environment:
npm
Packages:
ingraft@ingraft/skill
The OpenTUI dashboard ships inside ingraft; packages/tui is only an internal workspace wrapper.
Do not add an NPM_TOKEN secret for the default path. Trusted Publishing uses short-lived OIDC credentials from GitHub Actions.
The checked-in formula points at the npm package tarball for the current package version. After changing the CLI package contents for a release, regenerate the tarball checksum before publishing the formula:
bun run --cwd packages/cli build
npm pack --json packages/cli
shasum -a 256 packages/cli/ingraft-<version>.tgzThen update Formula/ingraft.rb and remove the generated .tgz.
The website serves packages/website/public/install.sh at
https://ingraft.dev/install.sh. The script installs ingraft@latest by
default, so publish the npm package before advertising the shell command on a
live release page.
The Nix package uses packages/cli/package-lock.json with importNpmLock, so no separate npmDepsHash is maintained. When CLI dependencies change, regenerate the isolated lockfile from packages/cli/package.json before validating the flake.
Configure these repository secrets for the website deployment workflow:
CLOUDFLARE_API_TOKENCLOUDFLARE_ACCOUNT_IDALCHEMY_PASSWORD