Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
{
"name": "offcut",
"description": "Persistent construction discipline and concise responses for coding agents.",
"version": "0.4.1",
"version": "0.4.2",
"source": "./plugins/offcut",
"author": {
"name": "skelvar"
Expand Down
2 changes: 1 addition & 1 deletion .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "offcut",
"version": "0.4.1",
"version": "0.4.2",
"description": "Persistent construction discipline and concise responses for coding agents.",
"license": "MIT",
"author": {
Expand Down
2 changes: 1 addition & 1 deletion .codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "offcut",
"version": "0.4.1",
"version": "0.4.2",
"description": "Persistent construction discipline and concise output for coding agents.",
"license": "MIT",
"author": {
Expand Down
2 changes: 1 addition & 1 deletion .cursor-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"name": "offcut",
"source": "plugins/offcut",
"description": "Persistent construction discipline and concise responses for coding agents.",
"version": "0.4.1",
"version": "0.4.2",
"author": {
"name": "skelvar"
},
Expand Down
2 changes: 1 addition & 1 deletion .cursor-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "offcut",
"version": "0.4.1",
"version": "0.4.2",
"description": "Persistent construction discipline and concise responses for coding agents.",
"author": {
"name": "skelvar"
Expand Down
19 changes: 16 additions & 3 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,25 @@ jobs:
with:
node-version: '22'
registry-url: https://registry.npmjs.org
# Node 22 bundles npm 10; OIDC trusted publishing needs npm 11.5.1+.
- run: npm install -g npm@latest
- name: Tag must match package.json
run: |
tag="${{ github.event.release.tag_name }}"
ver="$(node -p "require('./package.json').version")"
test "$tag" = "v$ver" || { echo "tag $tag != package.json v$ver"; exit 1; }
- run: node --test tests/*.test.js
- run: npm publish --provenance --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Skip if this version is already on the registry
id: check
run: |
ver="$(node -p "require('./package.json').version")"
if npm view "@skelvar/offcut@$ver" version >/dev/null 2>&1; then
echo "exists=true" >> "$GITHUB_OUTPUT"
echo "::notice::@skelvar/offcut@$ver is already published; nothing to do."
else
echo "exists=false" >> "$GITHUB_OUTPUT"
fi
# No token: authentication is the OIDC trusted publisher configured on npmjs
# for this repository and this workflow file.
- if: steps.check.outputs.exists != 'true'
run: npm publish --provenance --access public
7 changes: 5 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,10 @@ no dependencies.
git diff | npx --yes github:skelvar/offcut scan --diff -
```

Pin a version with `npx --yes github:skelvar/offcut#v0.4.0 scan --diff -`; marketplace installs accept the same tag as `--ref v0.4.0`.
The same command from npm: `git diff | npx --yes @skelvar/offcut scan --diff -`.
Pin a version with `npx --yes @skelvar/offcut@0.4.2 scan --diff -` or
`npx --yes github:skelvar/offcut#v0.4.2 scan --diff -`; marketplace installs
accept the same tag as `--ref v0.4.2`.

```text
src/phone.js (1)
Expand Down Expand Up @@ -143,7 +146,7 @@ Harness notes and benchmark receipts: [docs/development](docs/development/README

The Releases page is not updated by the version fields; this step is what updates it.

4. Publishing the release triggers `.github/workflows/publish.yml`, which publishes `@skelvar/offcut` to npmjs with provenance. It needs a repository secret `NPM_TOKEN` (an npm granular access token with publish rights on the `@skelvar` scope).
4. Publishing the release triggers `.github/workflows/publish.yml`, which publishes `@skelvar/offcut` to npmjs with provenance. Authentication is npm's trusted publisher for this repository and workflow file (configured once with `npm trust github @skelvar/offcut --repo skelvar/offcut --file publish.yml --allow-publish`); no token is stored. If the version is already on the registry, the workflow exits without publishing.

## License

Expand Down
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"name": "@skelvar/offcut",
"version": "0.4.1",
"version": "0.4.2",
"description": "Build the cheapest correct thing in the right place.",
"type": "module",
"bin": {
"offcut": "./tools/bootstrap.mjs"
"offcut": "tools/bootstrap.mjs"
},
"files": [
"assets/",
Expand Down
2 changes: 1 addition & 1 deletion plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"$schema": "https://raw.githubusercontent.com/anthropics/agent-plugins/main/schemas/plugin.schema.json",
"name": "offcut",
"version": "0.4.1",
"version": "0.4.2",
"description": "Persistent construction discipline and concise responses for coding agents.",
"author": {
"name": "skelvar"
Expand Down
2 changes: 1 addition & 1 deletion plugins/offcut/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "offcut",
"version": "0.4.1",
"version": "0.4.2",
"description": "Persistent construction discipline and concise responses for coding agents.",
"license": "MIT",
"author": {
Expand Down
2 changes: 1 addition & 1 deletion plugins/offcut/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "offcut",
"version": "0.4.1",
"version": "0.4.2",
"description": "Persistent construction discipline and concise output for coding agents.",
"license": "MIT",
"author": {
Expand Down
2 changes: 1 addition & 1 deletion plugins/offcut/.cursor-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "offcut",
"version": "0.4.1",
"version": "0.4.2",
"description": "Persistent construction discipline and concise responses for coding agents.",
"author": {
"name": "skelvar"
Expand Down
7 changes: 5 additions & 2 deletions plugins/offcut/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,10 @@ no dependencies.
git diff | npx --yes github:skelvar/offcut scan --diff -
```

Pin a version with `npx --yes github:skelvar/offcut#v0.4.0 scan --diff -`; marketplace installs accept the same tag as `--ref v0.4.0`.
The same command from npm: `git diff | npx --yes @skelvar/offcut scan --diff -`.
Pin a version with `npx --yes @skelvar/offcut@0.4.2 scan --diff -` or
`npx --yes github:skelvar/offcut#v0.4.2 scan --diff -`; marketplace installs
accept the same tag as `--ref v0.4.2`.

```text
src/phone.js (1)
Expand Down Expand Up @@ -143,7 +146,7 @@ Harness notes and benchmark receipts: [docs/development](docs/development/README

The Releases page is not updated by the version fields; this step is what updates it.

4. Publishing the release triggers `.github/workflows/publish.yml`, which publishes `@skelvar/offcut` to npmjs with provenance. It needs a repository secret `NPM_TOKEN` (an npm granular access token with publish rights on the `@skelvar` scope).
4. Publishing the release triggers `.github/workflows/publish.yml`, which publishes `@skelvar/offcut` to npmjs with provenance. Authentication is npm's trusted publisher for this repository and workflow file (configured once with `npm trust github @skelvar/offcut --repo skelvar/offcut --file publish.yml --allow-publish`); no token is stored. If the version is already on the registry, the workflow exits without publishing.

## License

Expand Down
4 changes: 2 additions & 2 deletions plugins/offcut/package.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"name": "@skelvar/offcut",
"version": "0.4.1",
"version": "0.4.2",
"description": "Build the cheapest correct thing in the right place.",
"type": "module",
"bin": {
"offcut": "./tools/bootstrap.mjs"
"offcut": "tools/bootstrap.mjs"
},
"files": [
"assets/",
Expand Down
2 changes: 1 addition & 1 deletion plugins/offcut/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"$schema": "https://raw.githubusercontent.com/anthropics/agent-plugins/main/schemas/plugin.schema.json",
"name": "offcut",
"version": "0.4.1",
"version": "0.4.2",
"description": "Persistent construction discipline and concise responses for coding agents.",
"author": {
"name": "skelvar"
Expand Down
2 changes: 1 addition & 1 deletion plugins/offcut/skills/offcut-audit/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ description: >
license: MIT
compatibility: Requires Node.js on PATH to run scripts/scan.mjs. Touches no mode state.
metadata:
version: "0.4.1"
version: "0.4.2"
author: skelvar
---

Expand Down
2 changes: 1 addition & 1 deletion plugins/offcut/skills/offcut-help/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ description: >
license: MIT
compatibility: Text only. No Node.js required. Touches no mode state.
metadata:
version: "0.4.1"
version: "0.4.2"
author: skelvar
---

Expand Down
2 changes: 1 addition & 1 deletion plugins/offcut/skills/offcut-review/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ description: >
license: MIT
compatibility: Requires Node.js on PATH to run scripts/scan.mjs. Touches no mode state.
metadata:
version: "0.4.1"
version: "0.4.2"
author: skelvar
---

Expand Down
2 changes: 1 addition & 1 deletion plugins/offcut/skills/offcut/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ compatibility: >
Grok Build). Native persistent instructions are supported on all four hosts;
the skill remains a compatibility fallback.
metadata:
version: "0.4.1"
version: "0.4.2"
author: skelvar
---

Expand Down
2 changes: 1 addition & 1 deletion scripts/build-agents-md.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ compatibility: >
Grok Build). Native persistent instructions are supported on all four hosts;
the skill remains a compatibility fallback.
metadata:
version: "0.4.1"
version: "0.4.2"
author: skelvar
---

Expand Down
2 changes: 1 addition & 1 deletion skills/offcut-audit/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ description: >
license: MIT
compatibility: Requires Node.js on PATH to run scripts/scan.mjs. Touches no mode state.
metadata:
version: "0.4.1"
version: "0.4.2"
author: skelvar
---

Expand Down
2 changes: 1 addition & 1 deletion skills/offcut-help/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ description: >
license: MIT
compatibility: Text only. No Node.js required. Touches no mode state.
metadata:
version: "0.4.1"
version: "0.4.2"
author: skelvar
---

Expand Down
2 changes: 1 addition & 1 deletion skills/offcut-review/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ description: >
license: MIT
compatibility: Requires Node.js on PATH to run scripts/scan.mjs. Touches no mode state.
metadata:
version: "0.4.1"
version: "0.4.2"
author: skelvar
---

Expand Down
2 changes: 1 addition & 1 deletion skills/offcut/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ compatibility: >
Grok Build). Native persistent instructions are supported on all four hosts;
the skill remains a compatibility fallback.
metadata:
version: "0.4.1"
version: "0.4.2"
author: skelvar
---

Expand Down
3 changes: 2 additions & 1 deletion tests/distribution.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@ test('universal package exposes a zero-dependency offcut installer', () => {
const manifest = JSON.parse(fs.readFileSync(packagePath, 'utf8'));
assert.equal(manifest.name, '@skelvar/offcut');
assert.equal(manifest.type, 'module');
assert.equal(manifest.bin?.offcut, './tools/bootstrap.mjs');
// npm 11.15+ drops bin entries whose path starts with "./" instead of cleaning them.
assert.equal(manifest.bin?.offcut, 'tools/bootstrap.mjs');
assert.deepEqual(manifest.dependencies || {}, {});
assert.match(manifest.engines?.node || '', />=20/);
assert.ok(manifest.files.includes('scripts/scan.mjs'));
Expand Down