Part of Bluera Base documentation.
Create a CLAUDE.md in your project root. Here's a template - customize the scripts section for your project:
@bluera-base/includes/CLAUDE-BASE.md
---
## Package Manager
**Use `bun`** (or your preferred package manager) - Example: `bun run <script>`
---
## Scripts
**Development:**
- `bun run build` - Compile TypeScript
- `bun run test:run` - Run tests once
- `bun run precommit` - Full validation
## Versioning
- `bun run version:patch` - Bump patch (0.0.x)The @bluera-base/includes/CLAUDE-BASE.md pulls in:
- Header explaining CLAUDE.md vs README.md
- Hierarchical CLAUDE.md explanation
- Distribution Requirements (for plugins with build steps)
- ALWAYS/NEVER conventions
To customize a skill for your project:
- Create
.claude/skills/commit/SKILL.mdin your project - Copy the base skill content
- Modify the "Trigger files" section for your project structure
Your local skill takes precedence over the plugin's version.
Claude Code uses two settings files with different purposes:
| File | Committed | Purpose |
|---|---|---|
.claude/settings.json |
Yes | Shared team settings (checked into repo) |
.claude/settings.local.json |
No | Personal settings (gitignored) |
Create .claude/settings.json in your project with permissions needed by all developers:
{
"permissions": {
"allow": [
"Bash(jq *)",
"Bash(git rev-parse *)",
"Bash(git status *)",
"Bash(git log *)",
"Bash(bun run *)"
],
"deny": [
"Bash(* --no-verify *)",
"Bash(git push --force *)"
]
}
}Copy templates/settings.local.json.example to your project's .claude/settings.local.json:
cp /path/to/bluera-base/templates/settings.local.json.example .claude/settings.local.jsonThis provides:
- Pre-approved commands for multiple package managers and linters
- Example hook structure (the actual hooks are provided by the bluera-base plugin itself via
hooks/hooks.json)
Permissions use glob-style matching:
| Pattern | Matches |
|---|---|
Bash(git status *) |
git status, git status ., etc. |
Bash(npm run *) |
npm run test, npm run build, etc. |
Bash(jq *) |
Any jq command (filters vary widely) |
Bash(* --no-verify *) |
Any command containing --no-verify |
The templates include safety deny rules:
Bash(* --no-verify *)- Prevents bypassing git hooksBash(git push --force *)- Prevents force-pushingBash(rm -rf /)- Prevents catastrophic deletes
Deny rules take precedence over allow rules.