Help us improve
Share bugs, ideas, or general feedback.
npx claudepluginhub RasmusGodske/claude-liv-conventionsPre-tool hooks that enforce Laravel/Inertia/Vue conventions. Blocks anti-patterns and guides Claude towards project best practices.
Share bugs, ideas, or general feedback.
A Claude Code plugin that enforces opinionated conventions for Laravel/Inertia/Vue projects.
When using Claude Code for Laravel/Inertia/Vue development, Claude may suggest patterns that don't align with project conventions. For example:
FormRequest classes when the project uses spatie/laravel-data DataClasses<script setup lang="ts">This plugin intercepts Claude's tool usage and:
The plugin provides pre-tool hooks that run before Claude executes tools like Write, Edit, or Bash. Each hook validates the intended action and can:
| Hook | Purpose |
|---|---|
FormRequestBlocker | Blocks Laravel FormRequest creation, guides to DataClasses |
VueScriptValidator | Ensures Vue files use <script setup lang="ts"> |
┌─────────────────┐ ┌──────────────┐ ┌─────────────────┐
│ Claude wants │────▶│ Hook runs │────▶│ Action allowed │
│ to write file │ │ validation │ │ or blocked │
└─────────────────┘ └──────────────┘ └─────────────────┘
Write to create a file)Hooks are Python scripts using the claude-hook-utils package for standardized input/output handling.
If you're using a devcontainer, ensure these are installed in your container.
/plugin marketplace add github.com/RasmusGodske/claude-liv-conventions
# Install for the current project (recommended for teams)
/plugin install liv-hooks@claude-liv-conventions --scope project
# Or install globally for all projects
/plugin install liv-hooks@claude-liv-conventions --scope user
Hooks are loaded when Claude Code starts. Restart to activate the plugin.
Alternatively, add to your .claude/settings.json:
{
"extraKnownMarketplaces": {
"claude-liv-conventions": {
"source": {
"source": "github",
"repo": "RasmusGodske/claude-liv-conventions"
}
}
},
"enabledPlugins": {
"liv-hooks@claude-liv-conventions": true
}
}
claude-liv-conventions/
├── .claude-plugin/
│ └── marketplace.json # Marketplace catalog
├── plugins/
│ └── liv-hooks/
│ ├── .claude-plugin/
│ │ └── plugin.json # Plugin manifest with hooks config
│ ├── hooks/
│ │ ├── FormRequestBlocker/
│ │ │ ├── pyproject.toml
│ │ │ └── main.py
│ │ └── VueScriptValidator/
│ │ ├── pyproject.toml
│ │ └── main.py
│ └── README.md
└── README.md
See plugins/liv-hooks/README.md for instructions on creating new hooks.
MIT