diff --git a/.agents/plugins/marketplace.json b/.agents/plugins/marketplace.json new file mode 100644 index 00000000..eaa1539a --- /dev/null +++ b/.agents/plugins/marketplace.json @@ -0,0 +1,20 @@ +{ + "name": "hack-dance", + "interface": { + "displayName": "Hack Dance" + }, + "plugins": [ + { + "name": "hack", + "source": { + "source": "local", + "path": "./plugins/hack" + }, + "policy": { + "installation": "AVAILABLE", + "authentication": "ON_INSTALL" + }, + "category": "Developer Tools" + } + ] +} diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json new file mode 100644 index 00000000..d87b0fbb --- /dev/null +++ b/.claude-plugin/marketplace.json @@ -0,0 +1,16 @@ +{ + "name": "hack-dance", + "description": "Official Hack plugins for local-first development workflows.", + "owner": { + "name": "Hack Dance LLC" + }, + "plugins": [ + { + "name": "hack", + "source": "./plugins/hack", + "description": "Operate and onboard Hack-managed local development environments.", + "category": "development", + "tags": ["local-development", "docker", "developer-tools", "agents"] + } + ] +} diff --git a/.claude/settings.json b/.claude/settings.json index 0f0432cc..7035b1aa 100644 --- a/.claude/settings.json +++ b/.claude/settings.json @@ -11,12 +11,5 @@ ] } ] - }, - "mcpServers": { - "hack": { - "type": "stdio", - "command": "hack", - "args": ["mcp", "serve"] - } } } diff --git a/.codex/config.toml b/.codex/config.toml deleted file mode 100644 index 5b5944fa..00000000 --- a/.codex/config.toml +++ /dev/null @@ -1,3 +0,0 @@ -[mcp_servers.hack] -command = "hack" -args = ["mcp", "serve"] diff --git a/.codex/skills/hack-init/SKILL.md b/.codex/skills/hack-init/SKILL.md deleted file mode 100644 index 7e0f7aca..00000000 --- a/.codex/skills/hack-init/SKILL.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -name: hack-init -description: > - Stand up or adopt hack in a project (agent-assisted onboarding). - Trigger when asked to set a repo up with hack, migrate a project onto - hack, or finish/repair a partial hack setup. ---- - -# hack init (agent-assisted onboarding) - -The full onboarding prompt is generated by the hack CLI — do not improvise the steps. - -1. Fetch the canonical onboarding prompt: - - With shell access: run `hack agent onboard` (works for new and existing projects). - - Without shell access: fetch the `hack-init` MCP prompt from the hack MCP server. -2. Follow the printed prompt phase by phase (inventory, setup, platform nuances, running things, verification). -3. Finish only when `hack doctor` is clean and every routable service responds. diff --git a/.cursor-plugin/marketplace.json b/.cursor-plugin/marketplace.json new file mode 100644 index 00000000..384d2e1d --- /dev/null +++ b/.cursor-plugin/marketplace.json @@ -0,0 +1,16 @@ +{ + "name": "hack-dance", + "owner": { + "name": "Hack Dance LLC" + }, + "metadata": { + "description": "Official Hack plugins for local-first development workflows." + }, + "plugins": [ + { + "name": "hack", + "source": "plugins/hack", + "description": "Operate and onboard Hack-managed local development environments." + } + ] +} diff --git a/.releaserc.json b/.releaserc.json index 26c199a4..9ea15c38 100644 --- a/.releaserc.json +++ b/.releaserc.json @@ -24,7 +24,10 @@ "packages/db/package.json", "services/auth-broker/package.json", "bun.lock", - "apps/macos/Config/Base.xcconfig" + "apps/macos/Config/Base.xcconfig", + "plugins/hack/.codex-plugin/plugin.json", + "plugins/hack/.claude-plugin/plugin.json", + "plugins/hack/.cursor-plugin/plugin.json" ], "message": "chore(release): ${nextRelease.version}\n\n${nextRelease.notes}" } diff --git a/AGENTS.md b/AGENTS.md index 44041bc8..307b4cc3 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -210,11 +210,11 @@ Most formatting and common issues are automatically fixed by Biome. Run `bun x u Use `hack` as the single interface for local-first runtime orchestration (compose, DNS/TLS, logs, env, and persistent project workspaces). Integration freshness: -- These instructions were generated by hack CLI v3.5.0; treat cached rules from another version as potentially stale. +- These instructions were generated by hack CLI v3.5.1; treat cached rules from another version as potentially stale. - At session start, audit project and global integrations with `hack setup sync --all-scopes --check`. - If anything is stale, missing, or deprecated, run `hack setup sync --all-scopes`, then reload the agent session so cached instructions are replaced. - Never copy or hand-edit generated Hack rules to refresh them; update the CLI and run the sync command. -- Content revision: `1319d93c89c3` (version alone is not a freshness guarantee). +- Content revision: `6ef36575c6e7` (version alone is not a freshness guarantee). Product boundary: - Supported v3 surface: project init, up/down/restart, open, logs, env, host exec/shell, sessions, doctor, and daemon. @@ -366,7 +366,7 @@ Docker compose notes: - Use `docker compose -f .hack/docker-compose.yml exec ` only if you need exec into a running container. Agent integration maintenance: -- Project-level hack commands auto-check integration drift and attempt auto-sync (project docs, client skills/rules, shared global skills, and MCP). +- Project-level hack commands auto-check integration drift and attempt auto-sync (project docs, Cursor/Claude integrations, shared global skills, and MCP). - When drift is detected, Hack reports it before repair and tells the agent to reload after repair; it never silently leaves the session using cached rules. - Set `HACK_SETUP_SYNC_MODE=warn` to only warn, or `HACK_SETUP_SYNC_MODE=off` to disable. - Refresh project + user integrations: `hack setup sync --all-scopes` @@ -376,9 +376,9 @@ Agent integration maintenance: - When changing hack itself: interface or behavior changes must update docs/ in the same change (regenerate the CLI reference with `bun run docs:cli-reference`). Agent setup (CLI-first): -- Cursor rules: `hack setup cursor` -- Claude hooks: `hack setup claude` -- Codex skill: `hack setup codex` +- Cursor plugin: run `hack setup cursor`, then install Hack with `/add-plugin` or enable it from Settings > Plugins as directed. +- Claude Code plugin: run `hack setup claude`, then install or enable `hack@hack-dance` as directed. +- Codex plugin: run `hack setup codex`, then install or enable Hack from `/plugins` as directed. - Refresh all local agent integrations: `hack setup sync --all-scopes` - Agent-assisted onboarding: `hack init --with claude|codex|both` (new repos) or `hack agent onboard` (existing projects) print/hand off the full setup prompt; the `/hack-init` skill and the `hack-init` MCP prompt return the same content. - Init prompt: `hack agent init` (use --client cursor|claude|codex to open) diff --git a/CLAUDE.md b/CLAUDE.md index e78dc3c7..98e70794 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -80,11 +80,11 @@ This project uses Obsidian for project context, specs, research, and progress tr Use `hack` as the single interface for local-first runtime orchestration (compose, DNS/TLS, logs, env, and persistent project workspaces). Integration freshness: -- These instructions were generated by hack CLI v3.5.0; treat cached rules from another version as potentially stale. +- These instructions were generated by hack CLI v3.5.1; treat cached rules from another version as potentially stale. - At session start, audit project and global integrations with `hack setup sync --all-scopes --check`. - If anything is stale, missing, or deprecated, run `hack setup sync --all-scopes`, then reload the agent session so cached instructions are replaced. - Never copy or hand-edit generated Hack rules to refresh them; update the CLI and run the sync command. -- Content revision: `1319d93c89c3` (version alone is not a freshness guarantee). +- Content revision: `6ef36575c6e7` (version alone is not a freshness guarantee). Product boundary: - Supported v3 surface: project init, up/down/restart, open, logs, env, host exec/shell, sessions, doctor, and daemon. @@ -236,7 +236,7 @@ Docker compose notes: - Use `docker compose -f .hack/docker-compose.yml exec ` only if you need exec into a running container. Agent integration maintenance: -- Project-level hack commands auto-check integration drift and attempt auto-sync (project docs, client skills/rules, shared global skills, and MCP). +- Project-level hack commands auto-check integration drift and attempt auto-sync (project docs, Cursor/Claude integrations, shared global skills, and MCP). - When drift is detected, Hack reports it before repair and tells the agent to reload after repair; it never silently leaves the session using cached rules. - Set `HACK_SETUP_SYNC_MODE=warn` to only warn, or `HACK_SETUP_SYNC_MODE=off` to disable. - Refresh project + user integrations: `hack setup sync --all-scopes` @@ -246,9 +246,9 @@ Agent integration maintenance: - When changing hack itself: interface or behavior changes must update docs/ in the same change (regenerate the CLI reference with `bun run docs:cli-reference`). Agent setup (CLI-first): -- Cursor rules: `hack setup cursor` -- Claude hooks: `hack setup claude` -- Codex skill: `hack setup codex` +- Cursor plugin: run `hack setup cursor`, then install Hack with `/add-plugin` or enable it from Settings > Plugins as directed. +- Claude Code plugin: run `hack setup claude`, then install or enable `hack@hack-dance` as directed. +- Codex plugin: run `hack setup codex`, then install or enable Hack from `/plugins` as directed. - Refresh all local agent integrations: `hack setup sync --all-scopes` - Agent-assisted onboarding: `hack init --with claude|codex|both` (new repos) or `hack agent onboard` (existing projects) print/hand off the full setup prompt; the `/hack-init` skill and the `hack-init` MCP prompt return the same content. - Init prompt: `hack agent init` (use --client cursor|claude|codex to open) diff --git a/README.md b/README.md index 77823204..37571e4d 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,8 @@ the branch — review a PR while your main checkout keeps running. **Built for agents.** `hack init --with claude|codex` hands setup to an agent. Machine surfaces are first-class: `--json` envelopes with stable error codes, `--no-interactive`, and agent instructions that sync themselves into -AGENTS.md/CLAUDE.md, Cursor rules, and Codex skills. +AGENTS.md/CLAUDE.md. Cursor, Claude Code, and Codex support ship as native, +user-installed Hack plugins from this repository's marketplaces. ## More than ports diff --git a/docs/README.md b/docs/README.md index fc4a54b4..bd8919a9 100644 --- a/docs/README.md +++ b/docs/README.md @@ -59,7 +59,7 @@ This section is easy to find, but it does not lead the product story. - Working notes and historical design docs live in `docs/plans/`; they are not the supported product contract - Root scripts orchestrate workspace tasks through Turbo - Package-local commands remain available via `bun run --cwd