Skip to content

feat: install on a new machine in one step - #19

Merged
oveddan merged 1 commit into
mainfrom
claude/new-machine-setup-ddc1bd
Aug 31, 2026
Merged

feat: install on a new machine in one step#19
oveddan merged 1 commit into
mainfrom
claude/new-machine-setup-ddc1bd

Conversation

@oveddan

@oveddan oveddan commented Aug 31, 2026

Copy link
Copy Markdown
Owner

Installing this on a fresh machine did not work. The README and the skill both told the reader to npm install -g mft-config, but the package had never been published — that command and the npx -y mft-config fallback the skill depends on both 404'd. The documented install path described something that did not exist.

mft-config@0.1.0 is now published, which makes those instructions true. The remaining steps collapse into one.

Claude Code: a plugin

/plugin marketplace add oveddan/mft-api
/plugin install mft-configurator@mft-api

.claude-plugin/plugin.json points skills at ./.claude/skills, so the plugin serves the same skill directory the repository already discovers rather than a second copy to keep in sync.

Verified by adding the marketplace locally and installing: claude plugin details reports Skills (1) mft-configurator at ~90 always-on tokens, and claude plugin validate ./ --strict passes.

Codex: unchanged

There is no marketplace to target, so it keeps the curl one-liner. A single documented command is more honest than pretending parity exists.

Releasing

Manual, from the Actions tab — nothing reaches npm without someone choosing to send it. Bump the version in package.json, merge, then run the Release workflow.

It refuses a version already on the registry, so a forgotten bump fails immediately rather than part-way through a build. prepack runs the full check before anything uploads, and the commit is tagged v<version> only after the publish succeeds.

Authentication is npm trusted publishing (OIDC), so no write-capable token is stored anywhere. That needs enabling once on npmjs.com now that the package exists — Settings → Trusted publisher → GitHub Actions → release.yml. Until then the publish step fails and the fallback is a manual npm publish.

Verification

Against real hardware, from a clean directory outside this checkout so it resolved from the registry rather than local files:

  • npx -y mft-config list → discovers the controller on firmware 2026-07-02
  • npx -y mft-config export → all four banks of sixteen encoders, 0 warnings

npm run check passes (30/30 tests).

Closes #8

🤖 Generated with Claude Code

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Aug 31, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-08-31T21:22:53.949314Z da2b8ae PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

Installing this on a fresh machine did not work. The README and the skill
both told the reader to `npm install -g mft-config`, but the package had
never been published, so that command and the `npx -y mft-config` fallback
the skill depends on both 404'd. The documented install path described
something that did not exist.

The CLI is now published to npm, which makes those instructions true, and
the remaining steps collapse into one:

- A Claude Code plugin. `.claude-plugin/plugin.json` points `skills` at
  `./.claude/skills`, so the plugin serves the same skill directory the
  repository already discovers rather than a second copy to keep in sync.
  With the marketplace manifest alongside it, installing is
  `/plugin marketplace add oveddan/mft-api` and `/plugin install`.

- A release workflow, triggered by hand from the Actions tab. Nothing
  reaches npm without someone choosing to send it. It refuses a version
  already on the registry so a forgotten bump fails immediately, `prepack`
  runs the full check before anything uploads, and the commit is tagged
  only after the publish succeeds. Authentication is npm trusted
  publishing, so no write-capable token is stored anywhere.

Codex keeps its curl one-liner: there is no marketplace to target there,
and a single documented command is more honest than pretending parity.

Verified against real hardware from a clean directory, resolving from the
registry rather than this checkout: `npx -y mft-config list` discovers the
controller on firmware 2026-07-02, and `export` returns all four banks of
sixteen encoders with no warnings.

Closes #8

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@oveddan
oveddan force-pushed the claude/new-machine-setup-ddc1bd branch from da2b8ae to 7b9068c Compare August 31, 2026 21:21

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: da2b8ae147

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/workflows/release.yml Outdated
# fallback is `npm publish` from a logged-in machine.
on:
push:
tags: ['v*']

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep prerelease versions off npm's latest channel

When a tag such as v0.2.0-beta.1 is pushed, this broad trigger accepts it and the version check also passes, but the publish step supplies no --tag; npm publish --help identifies --tag as the channel option and npm config get tag defaults to latest. That would make a prerelease the default version installed by the documented npm install and npx commands. Restrict the trigger/version check to stable tags or publish prereleases under a non-latest dist-tag.

Useful? React with 👍 / 👎.

@oveddan
oveddan merged commit c08633c into main Aug 31, 2026
5 checks passed
@oveddan
oveddan deleted the claude/new-machine-setup-ddc1bd branch August 31, 2026 21:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

One-click install for agentic tooling (Claude Code plugin + npx-runnable CLI)

1 participant