|
| 1 | +# claude-code-lua-plugin |
| 2 | + |
| 3 | +A [Claude Code](https://code.claude.com) marketplace + plugin for building, testing, and deploying [Lua AI agents](https://heylua.ai) directly from inside your Claude Code session. |
| 4 | + |
| 5 | +## Install |
| 6 | + |
| 7 | +``` |
| 8 | +/plugin marketplace add lua-ai-global/claude-code-lua-plugin |
| 9 | +/plugin install lua-agent-builder@claude-code-lua-plugin |
| 10 | +/reload-plugins |
| 11 | +``` |
| 12 | + |
| 13 | +Then `/lua-auth` to authenticate (email + OTP, or paste an existing API key from [admin.heylua.ai](https://admin.heylua.ai)), and `/lua-doctor` to verify the full environment. |
| 14 | + |
| 15 | +Once it's on the official Anthropic marketplace, install will simplify to: |
| 16 | + |
| 17 | +``` |
| 18 | +/plugin install lua-agent-builder@claude-plugins-official |
| 19 | +``` |
| 20 | + |
| 21 | +## What's inside |
| 22 | + |
| 23 | +This repo is a **marketplace catalog** that ships one plugin: |
| 24 | + |
| 25 | +| Plugin | Description | |
| 26 | +|---|---| |
| 27 | +| [`lua-agent-builder`](./plugins/lua-agent-builder/) | The full Lua agent toolchain — 14 slash commands, 5 subagents, 9 hooks, MCP server with 5 read-only platform tools | |
| 28 | + |
| 29 | +See [`plugins/lua-agent-builder/README.md`](./plugins/lua-agent-builder/README.md) for the plugin's own docs (layout, hooks list, slash commands, design rationale). |
| 30 | + |
| 31 | +## Layout |
| 32 | + |
| 33 | +``` |
| 34 | +claude-code-lua-plugin/ |
| 35 | +├── .claude-plugin/ |
| 36 | +│ └── marketplace.json ← marketplace catalog (this file points at the plugin below) |
| 37 | +├── plugins/ |
| 38 | +│ └── lua-agent-builder/ |
| 39 | +│ ├── .claude-plugin/ |
| 40 | +│ │ └── plugin.json ← plugin manifest |
| 41 | +│ ├── commands/ ← 14 slash commands |
| 42 | +│ ├── agents/ ← 5 subagents |
| 43 | +│ ├── hooks/ ← 9 hooks |
| 44 | +│ ├── lib/ ← shared utilities + permissions template |
| 45 | +│ ├── mcp/lua-platform/ ← MCP server source + bundled dist/ |
| 46 | +│ ├── scripts/ ← 16 lints + 2 check scripts |
| 47 | +│ └── test/ ← 216 jest tests |
| 48 | +├── .github/workflows/ ← ci, release-beta, release-prod |
| 49 | +├── LICENSE ← (in plugins/lua-agent-builder/) |
| 50 | +├── SECURITY.md ← (in plugins/lua-agent-builder/) |
| 51 | +└── README.md ← you are here |
| 52 | +``` |
| 53 | + |
| 54 | +## Quick walkthrough |
| 55 | + |
| 56 | +After install + `/lua-auth`: |
| 57 | + |
| 58 | +``` |
| 59 | +/lua-architect I want to build a refund-handling agent |
| 60 | + → drafts a plan: persona, primitives, integrations, build order |
| 61 | +/lua-init → scaffolds project, asks for name + org + model |
| 62 | +/lua-new tool refund_lookup |
| 63 | + → spawns lua-skill-builder, scaffolds + compiles + tests |
| 64 | +/lua-test → exercises the tool in sandbox |
| 65 | +/lua-deploy → ships to production with a single permission gate |
| 66 | +``` |
| 67 | + |
| 68 | +For a fuller end-to-end walkthrough see the plugin's README and `/lua-doctor` (5-step environment diagnostic). |
| 69 | + |
| 70 | +## Safety contracts |
| 71 | + |
| 72 | +The plugin enforces several gates that show up at install time via `/lua-doctor` Step 5: |
| 73 | + |
| 74 | +- **§3.3 deploy gate** — bare `lua deploy` is denied at the permissions layer; defense-in-depth via the `confirm-deploy.mjs` PreToolUse hook. |
| 75 | +- **`--auto-deploy` block** — denied at permissions + blocked at the hook layer. |
| 76 | +- **§3.7 single-permission contract** — each slash asks at most one prompt (multi-step diagnostic slashes use the documented `x-lua-multi-step: true` opt-out). |
| 77 | +- **Credential isolation** — API key never enters the Claude conversation transcript; `/lua-doctor` Step 4 uses an authenticated metadata probe (`lua agents --json --ci`), not a key-printing command. |
| 78 | + |
| 79 | +See [`plugins/lua-agent-builder/SECURITY.md`](./plugins/lua-agent-builder/SECURITY.md) for the disclosure path and a fuller scope statement. |
| 80 | + |
| 81 | +## Contributing |
| 82 | + |
| 83 | +Issues and PRs welcome. The plugin has 16 structural lint scripts that catch known regression classes — if your change adds a new bug class, the right fix is usually "add a lint guard so the next person doesn't repeat it." See `plugins/lua-agent-builder/scripts/lint-*.mjs` for examples. |
| 84 | + |
| 85 | +## License |
| 86 | + |
| 87 | +[MIT](./plugins/lua-agent-builder/LICENSE) © Lua AI |
0 commit comments