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.
- package/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/README.md +7 -1
- package/alchemy.json +1 -1
- package/package.json +1 -1
- package/plugin.json +1 -1
- package/skills/harness-alchemist/references/publishing.md +9 -7
- package/templates/v0.1.0/universal-typescript/.github/workflows/npm-publish.yml.tpl +36 -20
- package/templates/v0.1.0/universal-typescript/README.md.tpl +8 -6
|
@@ -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.
|
|
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.
|
|
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
|
-
|
|
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
package/package.json
CHANGED
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.
|
|
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
|
-
(
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
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
|
-
|
|
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-
|
|
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@
|
|
19
|
-
|
|
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:
|
|
31
|
+
node-version: "24.19.0"
|
|
22
32
|
registry-url: https://registry.npmjs.org
|
|
23
|
-
|
|
33
|
+
package-manager-cache: false
|
|
34
|
+
- uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2
|
|
24
35
|
with:
|
|
25
|
-
bun-version: 1.
|
|
36
|
+
bun-version: 1.4.0
|
|
37
|
+
no-cache: true
|
|
26
38
|
|
|
27
|
-
- name:
|
|
28
|
-
id: version
|
|
39
|
+
- name: Verify release tag
|
|
29
40
|
shell: bash
|
|
30
41
|
run: |
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
if [[
|
|
34
|
-
echo "::error::Tag '$
|
|
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:
|
|
41
|
-
run:
|
|
42
|
-
|
|
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 --
|
|
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
|
-
(
|
|
61
|
-
the
|
|
62
|
-
verifies
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
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
|
|