Skip to content

Commit 055fa4e

Browse files
Restructure as marketplace+plugin per Claude Code canonical layout
A Claude Code marketplace and plugin can live in the same repo, but they're distinct entities: the marketplace is a catalog (`.claude-plugin/ marketplace.json` at the repo root) and each plugin lives at `plugins/<name>/` with its own `.claude-plugin/plugin.json`. Without this restructure, `/plugin marketplace add lua-ai-global/ claude-code-lua-plugin` failed with "Marketplace file not found at .claude-plugin/marketplace.json" — the repo had a plugin manifest but no marketplace catalog, so users couldn't install via Claude Code's native marketplace flow. Changes: - Plugin contents moved to `plugins/lua-agent-builder/` - New `.claude-plugin/marketplace.json` at the repo root references `./plugins/lua-agent-builder` per the documented relative-path source format (https://code.claude.com/docs/en/plugin-marketplaces# relative-paths) - CI workflows updated with `defaults.run.working-directory: plugins/lua-agent-builder` so all jobs run from the plugin subdir. Tarball paths and check-coverage outputs adjusted. Tested locally: `cd plugins/lua-agent-builder && npm install && npm run lint && npm test` — 16 lints + 216 tests all green. MCP bundle at plugins/lua-agent-builder/mcp/lua-platform/dist/server.js is 65 KB (0.06 MB / 5 MB budget). Install path now: /plugin marketplace add lua-ai-global/claude-code-lua-plugin /plugin install lua-agent-builder@claude-code-lua-plugin /reload-plugins Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 614915b commit 055fa4e

118 files changed

Lines changed: 63 additions & 19 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.claude-plugin/marketplace.json

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"name": "claude-code-lua-plugin",
3+
"owner": {
4+
"name": "Lua AI",
5+
"email": "support@heylua.ai",
6+
"url": "https://heylua.ai"
7+
},
8+
"plugins": [
9+
{
10+
"name": "lua-agent-builder",
11+
"source": "./plugins/lua-agent-builder",
12+
"description": "Build, test, and deploy Lua AI agents from inside Claude Code",
13+
"version": "1.0.0",
14+
"homepage": "https://docs.heylua.ai/claude-code-plugin",
15+
"repository": "https://github.com/lua-ai-global/claude-code-lua-plugin.git",
16+
"license": "MIT",
17+
"keywords": ["lua", "ai-agents", "deployment", "lua-cli"],
18+
"category": "DevTools"
19+
}
20+
]
21+
}

.github/workflows/ci.yml

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,19 @@ on:
1010
# Lints + tests the plugin only — no real lua-cli, no staging agents,
1111
# no secrets needed. Fork PRs run cleanly.
1212
#
13-
# NOTE: these workflow files are designed for the eventual public repo
14-
# `lua-ai-global/claude-code-lua-plugin` where this directory IS the repo
15-
# root. While the plugin lives in the monorepo at
16-
# `packages/claude-code-lua-plugin/`, GitHub Actions does NOT pick up nested
17-
# `.github/workflows/` — only the repo-root one — so these don't fire here.
18-
# When extracted, they will fire as-is.
13+
# Public-repo CI (lua-ai-global/claude-code-lua-plugin). The repo root is a
14+
# marketplace catalog (.claude-plugin/marketplace.json) and the plugin
15+
# itself lives at plugins/lua-agent-builder/ per the canonical Claude Code
16+
# marketplace+plugin layout.
1917
#
2018
# Cross-platform matrix because the plugin must work on macOS, Linux, and
2119
# Windows (per §3.8 of the feature doc — Node ESM hooks, AbortSignal.timeout,
2220
# path handling all need verification per cell).
2321

22+
defaults:
23+
run:
24+
working-directory: plugins/lua-agent-builder
25+
2426
jobs:
2527
plugin:
2628
strategy:
@@ -29,6 +31,9 @@ jobs:
2931
os: [macos-14, ubuntu-22.04, windows-2022]
3032
node: [18, 20]
3133
runs-on: ${{ matrix.os }}
34+
defaults:
35+
run:
36+
working-directory: plugins/lua-agent-builder
3237
steps:
3338
- uses: actions/checkout@v4
3439
- uses: actions/setup-node@v4
@@ -42,24 +47,27 @@ jobs:
4247
uses: actions/upload-artifact@v4
4348
with:
4449
name: coverage
45-
path: coverage/
50+
path: plugins/lua-agent-builder/coverage/
4651
retention-days: 7
4752

4853
mcp:
4954
runs-on: ubuntu-22.04
55+
defaults:
56+
run:
57+
working-directory: plugins/lua-agent-builder
5058
steps:
5159
- uses: actions/checkout@v4
5260
- uses: actions/setup-node@v4
5361
with:
5462
node-version: 20
5563
- name: Install MCP deps
56-
working-directory: mcp/lua-platform
64+
working-directory: plugins/lua-agent-builder/mcp/lua-platform
5765
run: npm ci
5866
- name: Test MCP
59-
working-directory: mcp/lua-platform
67+
working-directory: plugins/lua-agent-builder/mcp/lua-platform
6068
run: npm test
6169
- name: Build MCP bundle
62-
working-directory: mcp/lua-platform
70+
working-directory: plugins/lua-agent-builder/mcp/lua-platform
6371
run: npm run build
6472
- name: Verify bundle size
6573
run: node scripts/check-bundle-size.mjs

.github/workflows/release-beta.yml

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,16 @@ on:
1616
permissions:
1717
contents: write # Required for creating GitHub Releases and pushing tags
1818

19+
defaults:
20+
run:
21+
working-directory: plugins/lua-agent-builder
22+
1923
jobs:
2024
release:
2125
runs-on: ubuntu-22.04
26+
defaults:
27+
run:
28+
working-directory: plugins/lua-agent-builder
2229
steps:
2330
- uses: actions/checkout@v4
2431
with:
@@ -41,15 +48,15 @@ jobs:
4148
run: node scripts/check-coverage.mjs
4249

4350
- name: Install MCP deps
44-
working-directory: mcp/lua-platform
51+
working-directory: plugins/lua-agent-builder/mcp/lua-platform
4552
run: npm ci
4653

4754
- name: Test MCP
48-
working-directory: mcp/lua-platform
55+
working-directory: plugins/lua-agent-builder/mcp/lua-platform
4956
run: npm test
5057

5158
- name: Build MCP bundle
52-
working-directory: mcp/lua-platform
59+
working-directory: plugins/lua-agent-builder/mcp/lua-platform
5360
run: npm run build
5461

5562
- name: Verify bundle size
@@ -75,7 +82,7 @@ jobs:
7582
node scripts/pack.mjs
7683
TARBALL="claude-code-lua-plugin-${{ steps.version.outputs.version }}.tar.gz"
7784
ls -lh "${TARBALL}"
78-
echo "TARBALL=${TARBALL}" >> "$GITHUB_ENV"
85+
echo "TARBALL=plugins/lua-agent-builder/${TARBALL}" >> "$GITHUB_ENV"
7986
8087
- name: Create GitHub prerelease
8188
uses: softprops/action-gh-release@v2

.github/workflows/release-prod.yml

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,16 @@ on:
1818
permissions:
1919
contents: write
2020

21+
defaults:
22+
run:
23+
working-directory: plugins/lua-agent-builder
24+
2125
jobs:
2226
release:
2327
runs-on: ubuntu-22.04
28+
defaults:
29+
run:
30+
working-directory: plugins/lua-agent-builder
2431
steps:
2532
- uses: actions/checkout@v4
2633
with:
@@ -43,15 +50,15 @@ jobs:
4350
run: node scripts/check-coverage.mjs
4451

4552
- name: Install MCP deps
46-
working-directory: mcp/lua-platform
53+
working-directory: plugins/lua-agent-builder/mcp/lua-platform
4754
run: npm ci
4855

4956
- name: Test MCP
50-
working-directory: mcp/lua-platform
57+
working-directory: plugins/lua-agent-builder/mcp/lua-platform
5158
run: npm test
5259

5360
- name: Build MCP bundle
54-
working-directory: mcp/lua-platform
61+
working-directory: plugins/lua-agent-builder/mcp/lua-platform
5562
run: npm run build
5663

5764
- name: Verify bundle size
@@ -70,9 +77,10 @@ jobs:
7077
echo "Production version: ${VERSION}"
7178
7279
- name: Verify tag does not already exist
80+
working-directory: ${{ github.workspace }}
7381
run: |
7482
if git rev-parse "${{ steps.version.outputs.tag }}" >/dev/null 2>&1; then
75-
echo "::error::Tag ${{ steps.version.outputs.tag }} already exists. Bump package.json version before merging to main."
83+
echo "::error::Tag ${{ steps.version.outputs.tag }} already exists. Bump plugins/lua-agent-builder/package.json version before merging to main."
7684
exit 1
7785
fi
7886
@@ -83,7 +91,7 @@ jobs:
8391
node scripts/pack.mjs
8492
TARBALL="claude-code-lua-plugin-${{ steps.version.outputs.version }}.tar.gz"
8593
ls -lh "${TARBALL}"
86-
echo "TARBALL=${TARBALL}" >> "$GITHUB_ENV"
94+
echo "TARBALL=plugins/lua-agent-builder/${TARBALL}" >> "$GITHUB_ENV"
8795
8896
- name: Create GitHub release
8997
uses: softprops/action-gh-release@v2

.claude-plugin/plugin.json renamed to plugins/lua-agent-builder/.claude-plugin/plugin.json

File renamed without changes.

0 commit comments

Comments
 (0)