Clone one repo. Claude follows 17 security rules, 3 enforcement layers, and an architecture enforcer. Your team vibe-codes — the framework keeps it production-grade.
OWASP Top 10 covered. Secrets blocked. Auth enforced. Claude can't write insecure code even if the user asks.
Pick your stack. Auth middleware, rate limiting, request IDs, structured logging, migrations — all pre-wired.
Multiple Claude agents on the same codebase. Each owns a directory. Guard.sh hard-blocks cross-room edits. Zero merge conflicts.
To ship insecure code, all three layers must fail at the same time. Layers 2 and 3 aren't Claude's decision — they're enforced by the runtime and shell scripts.
CLAUDE.md + 17 rule files. Claude reads and follows them. An anti-override protocol catches social engineering.
settings.json deny list. The CLI physically blocks dangerous commands before they execute. No prompt overrides this.
guard.sh — a shell script that runs before every file edit. Scans for secrets, dangerous functions, and boundary violations.
When Claude opens the project, it reads CLAUDE.md automatically. This file contains 546 lines of security rules — including an anti-override protocol that handles 16 different social engineering attempts.
CLAUDE.md — Master security rules, OWASP matrix, anti-override protocol.claude/rules/*.md — 17 files, one per concern (security, architecture, routes, models...)The Claude Code runtime reads .claude/settings.json at startup. It contains three permission lists — allow, deny, and ask. Denied commands are physically blocked before execution.
git push --force, rm -rf, chmod 777 — denied at runtimeeval(), python -c, node -e — interpreter tricks blockedA PreToolUse hook triggers guard.sh before every Edit or Write. It pipes JSON (tool name, file path, content) to 4 guard modules that check everything.
collaboration.sh — path traversal, overwrite protection, teammate collisionsecurity.sh — 11 secret patterns, 13 dangerous functions, protected filesarchitecture.sh — stack lock, SQL in routes, auth enforcement, dependency directionrooms.sh — room boundaries, dependency protection, auto-rename notificationsReal scenarios. Real guard output. Every card is something that actually gets caught.
Each teammate opens a terminal and gets their own Claude agent. The agents stay in their lane and talk to each other when they need something.
Each person runs one command:
guard.sh enforces 4 rules on every edit:Watch Alice, Bob, and Charlie vibe code simultaneously. The guardrails keep every edit in its lane.
The algorithms, the files, and the code — explained visually.
From clone to running app. Every step, in order.
Every time Claude tries to write or edit a file, this pipeline runs. It takes the file path and content, passes them through 4 modules, and either allows or blocks.
Claude Code pipes JSON on stdin: tool name, file path, and content being written.
Checks path traversal (.. in paths), blocks Write on existing files (must use Edit), detects uncommitted changes by teammates.
Scans the content being written for hardcoded secrets (11 patterns) and dangerous functions (13 patterns). Also blocks edits to protected guardrail files.
Enforces stack lock (Go or Python, not both), blocks SQL in route handlers, requires auth on every endpoint, enforces dependency direction.
If an agent is assigned to a room, it can only edit files in its owned directories. Also protects cross-room dependencies — deleting a function used by another room is blocked, renames auto-notify affected rooms.
Click any file to see what it does, which layer it belongs to, and how it connects to everything else.
Click any file or folder in the tree to see what it does.
45 deny rules block every known method of reading the enforcement files. If you can't read the rules, you can't craft a bypass.
This is the main dispatcher. It reads what Claude is trying to do, then passes it through 4 security modules. Click any line to see what it means.
Each line of guard.sh has a purpose. Click a line to see what it does in plain English.
This tells your computer "run this file using bash" — the shell language. Every script starts with this line so the system knows how to read it.
This is a comment (starts with #). It's a note for humans: this script is a PreToolUse hook — it runs BEFORE Claude is allowed to write anything to a file.
Exit codes are how the script talks to Claude Code. Exit 0 means "go ahead, this is fine." Exit 2 means "BLOCKED — I'm not letting you do this." It's like a bouncer at a door — thumbs up or thumbs down.
set -euo pipefail = be paranoid. Stop immediately if anything goes wrong (-e), don't allow undefined variables (-u), and catch errors in piped commands (pipefail). This means the guard never silently fails.
GUARD_DIR = the folder where the 4 guard modules live (scripts/guards/). REPO_ROOT = the top of the project. These are like GPS coordinates — the script needs to know where it is to find everything else.
Claude Code sends a JSON blob on stdin — it contains what tool Claude is using, which file it wants to edit, and what content it wants to write. $(cat) reads all of it into a variable. This is the evidence the guard examines.
These three variables are everything the guard needs to make a decision: TOOL_NAME (Edit or Write?), FILE_PATH (which file?), and CONTENT (what's being written?). A tiny Python script parses the JSON to extract each field.
source means "run this file right here, sharing all my variables." Each guard module gets TOOL_NAME, FILE_PATH, and CONTENT automatically. If any module calls exit 2, the whole script stops — the edit is blocked. The order matters: collaboration -> security -> architecture -> rooms.
If we reach this line, it means all 4 guard modules ran without blocking. Exit 0 = "this edit is safe, let it through." Claude Code sees this and allows the file to be written.
Clone → pick → secrets → build → check → ship.
Six commands. Never used Claude Code? Never heard of OWASP? No problem. You'll have a running, secured app before your coffee gets cold.
Walk 7 questions in your browser — stack, database, security posture, team. The zip that lands in your Downloads has the right guards, CI gates, and CLAUDE.md rules already baked in. No generic template, no "remember to configure X later."
open the wizard →rooms.json so the multi-agent guards know who owns which directory. After pushing, grant repo access with gh repo add-collaborator. The wizard does not invite collaborators or send email — do those separately.
Prefer the CLI? The 6-step path below still works — same guards, same gates.
git --version. If it says "not found", run brew install git
python3 --version or go version
npm install -g @anthropic-ai/claude-code
This downloads the entire security system to your computer. The setup.sh script installs git hooks, creates your config file, and wires up the guard — automatically.
Go or Python — pick one. The other gets deleted. This "locks" the project so Claude can't accidentally mix languages. You can't undo this (by design).
Got an API key? A database URL? Never paste them in code. This command stores them in a hidden file (.env) that git ignores. The input is hidden — no one can see what you type.
.env is gitignored, so it never leaves your machine.
Type claude in your terminal to start Claude Code. Then just tell it what you want: "Build me a user registration API" or "Add a login page." The guard watches every edit Claude makes — you don't need to know security, the framework handles it.
Before you push code or open a pull request, run this. It checks code style, runs your tests, and scans for security issues. If something fails, it tells you exactly what to fix.
make fix — it auto-fixes most lint and style issues. For security issues, it gives you plain-English instructions.
Push your code. The pre-push hook runs tests and security scans automatically — if it passes, you're good. CI runs the same checks on the remote. Your app is secure by default. You never had to think about it.
// SECURITY LESSON: comments explaining every decision it makes.make doctor — it checks your entire security pipeline and tells you if anything is misconfigured. Run make fix to auto-repair common issues.make rooms to set up multi-agent coordination. Each person gets their own Claude agent that can only edit their files.