harness-alchemist 0.1.9 → 0.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
3
3
  "name": "harness-alchemist",
4
4
  "displayName": "Harness Alchemist",
5
- "version": "0.1.9",
5
+ "version": "0.1.10",
6
6
  "description": "Scaffold, validate, and publish portable coding-agent plugins across Claude Code, Codex, OpenCode, Antigravity, and DeepSeek Harness.",
7
7
  "author": {
8
8
  "name": "Haochuan Zhang"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "harness-alchemist",
3
- "version": "0.1.9",
3
+ "version": "0.1.10",
4
4
  "description": "Scaffold, validate, and publish portable coding-agent plugins across Claude Code, Codex, OpenCode, Antigravity, and DeepSeek Harness.",
5
5
  "author": {
6
6
  "name": "Haochuan Zhang",
package/README.md CHANGED
@@ -161,10 +161,16 @@ and the DeepSeek Cordis check require npm mode with built adapters
161
161
 
162
162
  ## Release automation
163
163
 
164
+ The npm package trusts GitHub Actions workflow `npm-publish.yml` in
165
+ `lunarmoon26/harness-alchemist`. The workflow uses OIDC instead of an
166
+ `NPM_TOKEN`, requires the tag to match the committed package version, and
167
+ accepts only commits contained in `main`.
168
+
164
169
  ```bash
165
170
  # bump package.json version, then:
166
171
  npm run sync && npm run verify && git commit -am "Release vX.Y.Z" && git push
167
- git tag vX.Y.Z && git push origin vX.Y.Z # publishes automatically
172
+ # after the release commit is merged to main:
173
+ git tag vX.Y.Z && git push origin vX.Y.Z # publishes through npm Trusted Publishing
168
174
  ```
169
175
 
170
176
  ## License
package/alchemy.json CHANGED
@@ -3,6 +3,6 @@
3
3
  "runtime": "npm",
4
4
  "template": "v0.1.0",
5
5
  "generator": "harness-alchemist",
6
- "generatorVersion": "0.1.9",
6
+ "generatorVersion": "0.1.10",
7
7
  "createdAt": "2026-08-24T00:00:00.000Z"
8
8
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "harness-alchemist",
3
- "version": "0.1.9",
3
+ "version": "0.1.10",
4
4
  "description": "Scaffold, validate, and publish portable coding-agent plugins across Claude Code, Codex, OpenCode, Antigravity, and DeepSeek Harness.",
5
5
  "type": "module",
6
6
  "bin": {
package/plugin.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
3
3
  "name": "harness-alchemist",
4
- "version": "0.1.9",
4
+ "version": "0.1.10",
5
5
  "description": "Scaffold, validate, and publish portable coding-agent plugins across Claude Code, Codex, OpenCode, Antigravity, and DeepSeek Harness.",
6
6
  "author": {
7
7
  "name": "Haochuan Zhang"
@@ -57,13 +57,15 @@ The package root exports OpenCode. The `./deepseek` subpath exports Cordis. Keep
57
57
  ## GitHub Release Publishing
58
58
 
59
59
  `.github/workflows/npm-publish.yml` publishes when a `vX.Y.Z` tag is pushed
60
- (or a GitHub release with a semver tag such as `vX.Y.Z-rc.1` is published);
61
- the workflow applies that version to `package.json`, runs
62
- `npm run sync`, verifies the package, and publishes it with npm provenance.
63
-
64
- Configure the repository `NPM_TOKEN` secret with an npm publish token before
65
- pushing the tag. The workflow never publishes from pull requests or branch
66
- pushes.
60
+ (including a prerelease tag such as `vX.Y.Z-rc.1`). The workflow requires the
61
+ tag to match the committed `package.json` version, checks that the tagged
62
+ commit is contained in `main`, verifies synchronized metadata and the package,
63
+ then publishes through npm Trusted Publishing with provenance.
64
+
65
+ Before the first release, configure the npm package's Trusted Publisher for
66
+ GitHub Actions with the repository owner, repository name, workflow filename
67
+ `npm-publish.yml`, and no environment. Do not create an `NPM_TOKEN` secret.
68
+ The workflow never publishes from pull requests or branch pushes.
67
69
 
68
70
  ## Public Catalog Metadata
69
71
 
@@ -7,43 +7,59 @@ on:
7
7
 
8
8
  permissions:
9
9
  contents: read
10
- id-token: write
10
+
11
+ concurrency:
12
+ group: npm-publish-${{ github.ref }}
13
+ cancel-in-progress: false
11
14
 
12
15
  jobs:
13
16
  publish:
17
+ name: Publish package
14
18
  if: github.event.created && !github.event.deleted
15
- runs-on: ubuntu-latest
19
+ runs-on: ubuntu-24.04
16
20
  timeout-minutes: 15
21
+ permissions:
22
+ contents: read
23
+ id-token: write # Required for npm Trusted Publishing OIDC.
17
24
  steps:
18
- - uses: actions/checkout@v5
19
- - uses: actions/setup-node@v5
25
+ - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
26
+ with:
27
+ fetch-depth: 0
28
+ persist-credentials: false
29
+ - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6
20
30
  with:
21
- node-version: 22.20.0
31
+ node-version: "24.19.0"
22
32
  registry-url: https://registry.npmjs.org
23
- - uses: oven-sh/setup-bun@v2
33
+ package-manager-cache: false
34
+ - uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2
24
35
  with:
25
- bun-version: 1.2.0
36
+ bun-version: 1.4.0
37
+ no-cache: true
26
38
 
27
- - name: Resolve release version
28
- id: version
39
+ - name: Verify release tag
29
40
  shell: bash
30
41
  run: |
31
- TAG="${{ github.ref_name }}"
32
- VERSION="${TAG#v}"
33
- if [[ ! "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z0-9.]+)?$ ]]; then
34
- echo "::error::Tag '$TAG' is not a valid semver version"
42
+ PACKAGE_VERSION="$(node -p "require('./package.json').version")"
43
+ EXPECTED_TAG="v${PACKAGE_VERSION}"
44
+ if [[ "$GITHUB_REF_NAME" != "$EXPECTED_TAG" ]]; then
45
+ echo "::error::Tag '$GITHUB_REF_NAME' must match package version '$EXPECTED_TAG'"
46
+ exit 1
47
+ fi
48
+
49
+ git fetch --no-tags origin main:refs/remotes/origin/main
50
+ TAG_COMMIT="$(git rev-list -n 1 "$GITHUB_REF_NAME")"
51
+ if ! git merge-base --is-ancestor "$TAG_COMMIT" refs/remotes/origin/main; then
52
+ echo "::error::Release tag '$GITHUB_REF_NAME' must point to a commit contained in main"
35
53
  exit 1
36
54
  fi
37
- echo "version=$VERSION" >> "$GITHUB_OUTPUT"
38
55
 
39
56
  - run: npm ci
40
- - name: Set package version from tag
41
- run: npm version "${{ steps.version.outputs.version }}" --no-git-tag-version --allow-same-version
42
- - run: npm run sync
57
+ - name: Verify synchronized metadata
58
+ run: |
59
+ npm run sync
60
+ git diff --exit-code
43
61
  - run: npm run verify
44
62
  - name: Verify npm package contents
45
63
  run: npm pack --dry-run
46
64
  - name: Publish npm package
47
- run: npm publish --provenance --access public
48
- env:
49
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
65
+ run: npm publish --access public
@@ -57,12 +57,14 @@ npm pack --dry-run
57
57
  ## GitHub Release Publishing
58
58
 
59
59
  `.github/workflows/npm-publish.yml` publishes when a `vX.Y.Z` tag is pushed
60
- (or a GitHub release with a semver tag such as `vX.Y.Z-rc.1` is published);
61
- the workflow applies that version, synchronizes manifests,
62
- verifies the package, and publishes with npm provenance.
63
-
64
- Configure the repository `NPM_TOKEN` secret with an npm publish token before
65
- pushing the tag.
60
+ (including a prerelease tag such as `vX.Y.Z-rc.1`). The workflow requires the
61
+ tag to match the committed `package.json` version, checks that the tagged
62
+ commit is contained in `main`, verifies synchronized metadata and the package,
63
+ then publishes through npm Trusted Publishing with provenance.
64
+
65
+ Before the first release, configure the npm package's Trusted Publisher for
66
+ GitHub Actions with the repository owner, repository name, workflow filename
67
+ `npm-publish.yml`, and no environment. Do not create an `NPM_TOKEN` secret.
66
68
 
67
69
  ## Claude Code
68
70