Drop-in Claude Code configuration for the Leave Management System project. Contains hooks, skills, and MCP wiring — no application code.
.mcp.json ← MCPs (Odoo, Playwright, Chrome DevTools)
.claude/
├── settings.json ← hooks
├── hooks/
│ ├── lib.sh ← shared helpers
│ ├── guard-bash.sh ← blocks rm -rf, force push, curl|sh
│ ├── guard-write.sh ← blocks .env edits, secrets, lockfiles
│ ├── format.sh ← auto-formats on write
│ └── setup-reminder.sh ← first-session setup guide
└── skills/
├── code-review/
├── feature-development/
├── frontend-practices/
├── backend-practices/
├── testing/
└── ponytail-minimalism/
# from your project root
cp -r /path/to/leave-management-starter/.claude ./.claude
cp /path/to/leave-management-starter/.mcp.json ./.mcp.json
chmod +x .claude/hooks/*.sh
git add .claude .mcp.json && git commit -m "chore: add Claude Code config"Get your token: https://odoo-mcp-b2604f7d.ownkube.io/oauth/login
Create .claude/settings.local.json in your project root (already in .gitignore):
{
"env": {
"ODOO_MCP_TOKEN": "your-token-here"
}
}On first session, the setup reminder will print instructions to:
- Install Codebase Memory MCP (one command, auto-configures Claude Code)
- Install 5 recommended plugins inside Claude Code
- Silence the reminder once done
| MCP | How | Needs |
|---|---|---|
| Odoo | HTTP — token from settings.local.json |
Odoo OAuth token |
| Playwright | npx @playwright/mcp@latest |
Node.js |
| Chrome DevTools | npx chrome-devtools-mcp@latest |
Node.js |
| Codebase Memory | installer auto-configures | Run installer (setup reminder guides you) |
Claude loads these when the task matches — no slash commands needed.
| Skill | Fires when |
|---|---|
feature-development |
Starting any feature or bugfix |
code-review |
Reviewing a diff or PR |
testing |
Writing or reviewing tests |
backend-practices |
Endpoints, auth, queries, migrations |
frontend-practices |
UI, components, forms, data fetching |
ponytail-minimalism |
Code feels over-engineered; before committing |
| Hook | Blocks / reacts |
|---|---|
guard-bash |
rm -rf, git push --force, curl | sh |
guard-write |
.env edits, lockfile hand-edits, hardcoded secrets |
format |
Auto-formats every file written (defers to format.local.sh if present) |
setup-reminder |
First-session plugin install guide (silenced by .claude/.setup-complete) |
Start Claude Code and ask:
"What skills do you have available?"
All six skills should be listed. If any are missing, check that .claude/skills/<name>/SKILL.md exists and the name: frontmatter matches the folder name.
This repo intentionally has no CLAUDE.md — write your own with your stack's commands, folder layout, and conventions. Keep it under ~200 lines. Every line should answer: "would removing this cause Claude to make a mistake?"
Drop an executable .claude/hooks/format.local.sh that takes a file path:
#!/usr/bin/env bash
npm run format "$1"format.sh will defer to it entirely when present.