Skip to content

feat: add HAX CLI Claude Code plugin + marketplace#28

Open
rickmanelius wants to merge 2 commits into
haxtheweb:mainfrom
rickmanelius:worktree-claude-hax-plugin
Open

feat: add HAX CLI Claude Code plugin + marketplace#28
rickmanelius wants to merge 2 commits into
haxtheweb:mainfrom
rickmanelius:worktree-claude-hax-plugin

Conversation

@rickmanelius

Copy link
Copy Markdown

Description of Changes

Adds an official Claude Code plugin for the HAX CLI, and turns this repo into a Claude Code plugin marketplace so it can be installed directly.

What changed

  • Marketplace (.claude-plugin/marketplace.json) — registers haxtheweb as a plugin marketplace exposing the hax plugin.
  • hax plugin (plugins/hax/):
    • Auto-install hook — a SessionStart hook checks for hax on PATH and installs @haxtheweb/create globally once if missing (opt out with HAX_PLUGIN_NO_AUTOINSTALL=1).
    • hax skill — full command-surface knowledge (web components, sites, content/node ops, imports, skeletons, publishing) plus HAX conventions (JavaScript-only, DDD design tokens, haxProperties), loaded automatically when HAX comes up.
    • Slash commands for the top workflows: /hax:quickstart, /hax:site, /hax:webcomponent, /hax:audit, /hax:serve, /hax:publish.
  • Requirements doc (docs/) — the v1 requirements that scoped this work.

Why this change was needed

Lets users install and drive the HAX CLI from inside Claude Code with a golden-path onboarding (/hax:quickstart → scaffold a HAXsite, serve it, hand back a live URL) instead of learning the CLI surface by hand.

How to test

  1. /plugin marketplace add haxtheweb/create (or a local checkout path)
  2. /plugin install hax@haxtheweb
  3. Start a new session and confirm the auto-install hook puts hax on PATH (or that it's skipped with HAX_PLUGIN_NO_AUTOINSTALL=1).
  4. Run /hax:quickstart and confirm it scaffolds a HAXsite, serves it, and returns a live URL.

Notes

  • Additive only — 13 new files, no changes to existing CLI code.
  • The plugin pins to the published @haxtheweb/create package.

rickmanelius and others added 2 commits June 29, 2026 20:06
Make this repo a Claude Code plugin marketplace and ship the `hax` plugin
so new users can discover, install, and drive the HAX CLI from inside
Claude Code, reaching a live HAXsite in the browser on their first run.

- .claude-plugin/marketplace.json: in-tool discovery
  (`/plugin marketplace add haxtheweb/create`)
- plugins/hax/.claude-plugin/plugin.json: manifest
- plugins/hax/hooks/: SessionStart hook auto-installs @haxtheweb/create
  when `hax` is missing (opt out with HAX_PLUGIN_NO_AUTOINSTALL=1)
- plugins/hax/skills/hax/SKILL.md: onboarding-scoped CLI knowledge
- plugins/hax/commands/: /hax:quickstart (golden path) plus site,
  webcomponent, serve, audit, publish

Validated with `claude plugin validate` (plugin + marketplace).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Brainstorm/requirements for the cross-tool (Claude Code + Codex) HAX
onboarding layer. Documents the golden path, scope by platform, and the
remaining Codex surface (AGENTS.md quickstart + custom prompt) deferred
beyond the Claude plugin.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@rickmanelius rickmanelius requested a review from btopro as a code owner June 30, 2026 20:43
@github-actions

github-actions Bot commented Jun 30, 2026

Copy link
Copy Markdown

All contributors have signed the CLA. Thank you!
Posted by the CLA Assistant Lite bot.

@rickmanelius

Copy link
Copy Markdown
Author

I have read the CLA Document and I hereby sign the CLA

@rickmanelius

Copy link
Copy Markdown
Author

It looks like my Compound Engineering work pulled over, which is probably not necessary.

I'd also like to run a more comprehensive set of tests off this fork/branch before this is merged, but I wanted to open it now in case there's any initial feedback.

@btopro

btopro commented Jul 6, 2026

Copy link
Copy Markdown
Member

This appears to provide at least some level of overlapping capability with https://github.com/haxtheweb/claudehax though I believe your work is more developer focused (which we need!) and @djfusco is more 'get commands good enough so we can do education stuff' focused. Please review and correct me if I'm wrong. Thank you for the contribution in advance Rick :)

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Adds a Claude Code plugin marketplace entry for this repo and ships an initial hax plugin that helps users install and use the HAX CLI (@haxtheweb/create) via a SessionStart hook, an onboarding skill, and several /hax:* slash commands.

Changes:

  • Adds a Claude Code plugin marketplace definition exposing the hax plugin.
  • Introduces the hax plugin manifest, SessionStart auto-install hook, and user-facing README.
  • Adds a HAX CLI skill plus slash-command docs for quickstart/site/webcomponent/audit/serve/publish workflows, and a requirements doc under docs/.

Reviewed changes

Copilot reviewed 13 out of 13 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
.claude-plugin/marketplace.json Registers the haxtheweb marketplace and exposes the hax plugin source path.
plugins/hax/.claude-plugin/plugin.json Defines the hax plugin manifest metadata (name, version, links, keywords).
plugins/hax/README.md Documents plugin purpose, installation via marketplace, and the /hax:quickstart golden path.
plugins/hax/hooks/hooks.json Configures the SessionStart hook that runs the CLI availability/auto-install script.
plugins/hax/hooks/scripts/ensure-hax.sh Implements best-effort detection/auto-install of @haxtheweb/create when hax is missing.
plugins/hax/skills/hax/SKILL.md Provides the assistant with HAX CLI command-surface knowledge and HAX ecosystem conventions.
plugins/hax/commands/quickstart.md Defines the /hax:quickstart workflow doc (scaffold site → serve).
plugins/hax/commands/site.md Defines the /hax:site workflow doc for creating/administering HAXsites.
plugins/hax/commands/webcomponent.md Defines the /hax:webcomponent workflow doc for scaffolding Lit/DDD components.
plugins/hax/commands/audit.md Defines the /hax:audit workflow doc for DDD compliance auditing.
plugins/hax/commands/serve.md Defines the /hax:serve workflow doc for running the HAXsite dev server.
plugins/hax/commands/publish.md Defines the /hax:publish workflow doc for deploy/CI setup commands.
docs/brainstorms/2026-06-29-hax-onboarding-plugins-requirements.md Captures v1 requirements and intended onboarding funnel/golden-path behavior.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +11 to +13
# This hook never blocks the session: it always exits 0. Anything it prints on
# stdout is surfaced to Claude as session context so the assistant knows whether
# the CLI is ready.
Comment on lines +39 to +42
# Human-facing progress goes to stderr; the result line goes to stdout/context.
echo "HAX CLI not found — installing @haxtheweb/create globally (one-time setup)…" 1>&2
if npm install --global @haxtheweb/create >/dev/null 2>&1; then
ver="$(hax --version 2>/dev/null | head -n1 | tr -d '\r')"
Comment on lines +29 to +33
4. **Serve it.** `cd` into the new site folder and start the dev server in the
**background** (it is long-running and will not return):
`cd <name> && hax serve`
Read the startup output for the local URL (usually http://localhost, sometimes
a different port).
Comment on lines +11 to +15
Guidance:
- Run from the root of a HAXsite. If the input names a site folder, `cd` into it first.
- `hax serve` is **long-running** — start it in the background so the session stays
responsive, then report the local URL to the user.
- If the current directory is not a HAXsite, say so and offer to create one with `/hax:site`.
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.

3 participants